#ifndef TCPSTARTINSTRUCTION_H
#define TCPSTARTINSTRUCTION_H

/**************************
 * \if English
 * @Date:2018.09.10
 * @Author:
 * @Brief:
 * @Detail:
 * @Editor:
 * @Brief:
 * \else
 *
 * @创建日期：2018年9月10日
 * @作者：hualei
 * @大概功能：TCP_START 指令
**************************/
#include <QString>
#include <QVector>
#include "instructionEnum.h"
#include <QDataStream>

/**
 * @brief The TcpStartInstruction class     从数据流中获取或写入TCP_START指令参数
 */
class TcpStartInstruction
{
public:
    TcpStartInstruction();

    /**
     * @brief operator <<   向数据流中写入指令参数
     * @param out           写入数据流
     * @param myVector      指令
     * @return
     */
    friend QDataStream& operator <<(QDataStream &out,TcpStartInstruction &myVector);

    /**
     * @brief operator >>       向数据流中读取指令参数
     * @param in                读取数据流
     * @param myVector          指令
     * @return
     */
    friend QDataStream& operator >>(QDataStream &in,TcpStartInstruction &myVector);

public:
    /**
     * @brief instructionType       指令类型
     */
    INSTRUCTION_TYPE instructionType;

    /**
     * @brief tcpStartClientIPVec       客户端IP
     */
    QVector <int> tcpStartClientIPVec;

    /**
     * @brief tcpStartServerIPVec       服务器端IP
     */
    QVector <int> tcpStartServerIPVec;

    /**
     * @brief tcpStartPort              端口号
     */
    int tcpStartPort;

    /**
     * @brief tcpStartBusType           总线类型 (SERVER / CLIENT)
     */
    EM_TCP_BUSTYPE tcpStartBusType;

    /**
     * @brief jmpLabelValue             跳转标签
     */
    int jmpLabelValue;

    /**
     * @brief noteStr                   注释
     */
    QString noteStr;
};

#endif // TCPSTARTINSTRUCTION_H
